<?php
header("Content-Type:text/html;charset=utf-8");
/**
 * 查询全部数据
 * @param String $sql SQL语句
 * return Array
 */

function dbAll($sql = null)
{
    //引入全局变量
    global $conn;
    $res = mysqli_query($conn, $sql);
    if (!$res) {
        echo "SQL语句执行失败：" . $sql;
        exit;
    }
    // 多条数据就是要循环
    $list = [];
    if ($res && mysqli_num_rows($res) > 0) {

        $list = mysqli_fetch_all($res, MYSQLI_ASSOC);
    }
    return $list;
}

/**
 * 查询单条数据
 * @param String $sql SQL语句
 * return Array
 */

function dbFind($sql = null)
{
    //引入全局变量
    global $conn;
    $res = mysqli_query($conn, $sql);
    if (!$res) {
        echo "SQL语句执行失败：" . $sql;
        exit;
    }
    return mysqli_fetch_assoc($res);;
}

/**
 * 插入数据
 * @param String $table 表名
 * @param Array $data 要插入的数据
 * @return Int 返回插入的自增ID
 */

// 插入函数
function dbAdd($table, $data)
{
    // INSERT INTO 表名(`字段1`,`字段2`,`字段3`)VALUES('值1','值2','值3')
    global $conn;

    //将数组里面的索引全部提取出来变成一个新数组
    $keys = array_keys($data);

    //数组变成字符串
    $fields = "`" . implode("`,`", $keys) . "`";

    $values = "'" . implode("','", $data) . "'";

    $sql = "INSERT INTO $table($fields)VALUES($values)";

    //执行语句
    $res = mysqli_query($conn, $sql);

    if (!$res) {
        echo '错误信息：'.mysqli_error($conn)."<br/>";
        echo "SQL语句执行失败：" . $sql;
        exit;
    }

    //返回插入ID
    return mysqli_insert_id($conn);
}

/**
 * 更新数据
 * @param String $table 表名
 * @param Array $data 要插入的数据
 * @param String $where 更新条件
 * @return Int 返回影响行数
 */
//更新
function dbUpdate($table, $data, $where = 1)
{
    //UPDATE 表名 SET `字段1` = '值1', `字段2` = '值2' WHERE 条件
    global $conn;

    //直接组装
    $field = "";

    foreach ($data as $key => $item) {
        $field .= "`$key` = '$item',";
    }

    $field = trim($field, ",");

    //组装sql语句
    $sql = "UPDATE $table SET $field WHERE $where";

    //执行sql
    $res = mysqli_query($conn, $sql);

    if (!$res) {
        echo "SQL语句执行失败：" . $sql;
        exit;
    }

    //返回影响行数
    return mysqli_affected_rows($conn);
}


//删除
function dbDel($table, $where = 1)
{
    //DELETE FROM 表名 WHERE where
    global $conn;

    $sql = "DELETE FROM $table WHERE $where";

    //执行sql
    $res = mysqli_query($conn, $sql);

    if (!$res) {
        echo "SQL语句执行失败：" . $sql;
        exit;
    }

    //返回影响行数
    return mysqli_affected_rows($conn);
}
